package 简单.模拟;

/**
 * 给你一个整数数组 nums，请你选择数组的两个不同下标 i 和 j，使 (nums[i]-1)*(nums[j]-1) 取得最大值。
 * 请你计算并返回该式的最大值。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/maximum-product-of-two-elements-in-an-array
 */
public class 数组中两元素的最大乘积_1464 {

    public static void main(String[] args) {

        int[] nums = {3, 4, 5, 2};
        System.out.println(maxProduct(nums));

    }

    public static int maxProduct(int[] nums) {
        int max1 = 1, max2 = 1;
        for (int num : nums) {
            if (num > max1) {
                // 第一大变成第二大
                max2 = max1;
                max1 = num;
            } else if (num > max2) {
                max2 = num;
            }
        }
        return (max1 - 1) * (max2 - 1);
    }

}
